package com.sky.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sky.shortlink.admin.dao.entity.GroupDO;
import com.sky.shortlink.admin.dto.req.ShortLinkGroupSaveReqDTO;
import com.sky.shortlink.admin.dto.req.ShortLinkGroupSortReqDTO;
import com.sky.shortlink.admin.dto.resp.ShortLinkGroupUpdateDTO;
import com.sky.shortlink.admin.remote.dto.resp.ShortLinkGroupRespDTO;

import java.util.List;

/**
 * @author Blue sky
 * @Description 分组接口层
 * @create 2024-02-18 10:17
 */
public interface GroupService extends IService<GroupDO> {
    /**
     * 新增短链接分组
     *
     * @param saveReqDTO 请求参数实体
     */
    void saveGroup(ShortLinkGroupSaveReqDTO saveReqDTO, String username);

    /**
     * 新增短链接分组 -- 传入用户名
     *
     * @param saveReqDTO 请求参数实体
     */
    void saveGroup(ShortLinkGroupSaveReqDTO saveReqDTO);

    /**
     * 查询分组集合
     *
     * @return List<ShortLinkGroupDTO>  分组集合
     */
    List<ShortLinkGroupRespDTO> listGroup();

    /**
     * 修改短链接分组名
     *
     * @param updateDTO 更新参数集合
     */
    void updateGroup(ShortLinkGroupUpdateDTO updateDTO);

    /**
     * 删除短链接分组
     *
     * @param gid 短链接分组标识
     */
    void deleteGroup(String gid);

    /**
     * 排序短链接分组
     *
     * @param list 排序分组list
     */
    void SortGroup(List<ShortLinkGroupSortReqDTO> list);
}
